# -*- coding:utf-8 -*-
import logging
from appium import webdriver
from Enterprise_wechat_app.po.base_page import BasePage
from Enterprise_wechat_app.po.home_page import HomePage
from Enterprise_wechat_app.po import utils


class App(BasePage):
    # 读取yaml文件数据
    get_datas = utils.yml_data()

    def start(self):
        # WebDriver注解本身没有任何的赋值作用，方便IDE操作,可以在继承该类下可以driver.关联出方法
        """
        启动app
        :return:
        """
        # 命令行输出参数传入
        # udid = os.getenv("udid")
        # port = os.getenv("port")

        if self.driver == None:
            logging.info("driver is none")
            desire_cap = {
                'platformName': 'android',
                'platfromVersion': '6.0',
                'deviceName': 'emulator-5556',
                'appPackage': 'com.tencent.wework',
                'appActivity': '.launch.WwMainActivity',
                'noReset': 'True',
                'udid': self.get_datas.get('udid')
            }
            # 完成客户端和服务端的连接，创建driver
            self.driver = webdriver.Remote(f"http://127.0.0.1:{self.get_datas.get('port')}/wd/hub", desire_cap)
            # 隐式等待，每次调用find_element和find_elements的时候调用
            self.driver.implicitly_wait(30)

        else:
            logging.info("driver is  not none")
            # 复用driver，启动页面，热启动
            self.driver.launch_app()
        return self  # 调用的时候可以返回同一个类下面的方法



    def stop(self):
        """
        停止app
        :return:
        """
        self.driver.quit()
    def reset(self):
        """
        重置app
        :return:
        """
    def goto_home_page(self):
        """
        跳转到主页
        :return:
        """
        return HomePage(self.driver)